package singleton;
// DCL을 써서 getInstance()에서 동기화되는 부분을 줄인다.
public class Singleton3{
	 
private volatile static Singleton3 uniqueInstance;

private Singleton3(){
}


public static Singleton3 getInstance(){  //-> 인스턴스 확인하고 없으면 동기화 블록으로 들어감
	if (uniqueInstance == null){     //-> 처음에만 동기화 됨
		synchronized (Singleton.class) {
			if (uniqueInstance == null) {
				uniqueInstance = new Singleton3();
				}  //-> 블록으로 들어온 후에 한번 더 null인지 확인.
			}
	}
	return uniqueInstance;
}

}



